Skip to content

Conversation

@SamuelRiedel
Copy link
Contributor

@SamuelRiedel SamuelRiedel commented Dec 23, 2025

This PR vendors in the updated version of Ibex that contains the Zcb and Zcmp extensions as discussed in the RFC: Zcb and Zmp ISA extensions. These extensions are enabled by defaut, but can be disabled through the RV32ZC parameter.

The details are discussed in the corresponding Ibex PRs:

Update code from upstream repository
https://github.com/lowRISC/ibex.git to revision
0c233f54361d769f370889223acc456f2ac19d46

* [formal] Disable the Zc* extensions for formal verification (Samuel
  Riedel)
* [rtl] Make Zcmp state registers resettable (Samuel Riedel)
* [rtl] Compute `gets_expanded_o` only if the instruction is valid
  (Samuel Riedel)
* [rtl] Add assertion to ensure the push/pop FSM only advances if
  valid (Samuel Riedel)
* [rtl] Only start the push/pop FSM if the instruction is valid
  (Samuel Riedel)
* [rtl] Optimize the Zcmp FSM (Samuel Riedel)
* [rtl] Add explanations to the Zcmp state machine (Samuel Riedel)
* [rtl] Fix handshake on compressed decoder (Samuel Riedel)
* [rtl] Annotate traces with expanded instruction information (Samuel
  Riedel)
* [rvfi] Track expanded instruction in rvfi (Samuel Riedel)
* [rtl] Track last expanded instruction (Samuel Riedel)
* [doc] Add Zcb and Zcmp extension to documentation (Samuel Riedel)
* [rtl] Parametrize Zcb and Zcmp extensions (Samuel Riedel)
* [rvfi] Output expanded instructions (except for the last one)
  (Andreas Kurth)
* [rtl] Implement Zcmp extension (Andreas Kurth)
* [rtl] Implement the Zcb extension (Elias Christen)

Signed-off-by: Samuel Riedel <sriedel@lowrisc.org>
Signed-off-by: Samuel Riedel <sriedel@lowrisc.org>
Update code from upstream repository
https://github.com/lowRISC/ibex.git to revision
75ef275cb34b7cae55325a1d64d8672a0cd72269

* [rtl] Lint fixes for recent Zc code (Andreas Kurth)
* [doc] Clarify usage of data independent timing & branch prediction
  (Pascal Nasahl)
* [doc] PMP instruction fetch check clarified (Marno van der Maas)

Signed-off-by: Pascal Nasahl <nasahlpa@lowrisc.org>
@nasahlpa nasahlpa marked this pull request as ready for review January 22, 2026 12:35
@nasahlpa nasahlpa requested a review from a team as a code owner January 22, 2026 12:35
@nasahlpa nasahlpa requested review from andreaskurth and rswarbrick and removed request for a team January 22, 2026 12:35
Copy link
Contributor

@rswarbrick rswarbrick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks sensible to me, and thanks for splitting up the Ibex bump cleanly.

@rswarbrick
Copy link
Contributor

CHANGE AUTHORIZED: hw/top_earlgrey/data/top_earlgrey.hjson
CHANGE AUTHORIZED: hw/top_earlgrey/ip_autogen/rv_core_ibex/data/rv_core_ibex.hjson
CHANGE AUTHORIZED: hw/top_earlgrey/ip_autogen/rv_core_ibex/rtl/rv_core_ibex.sv
CHANGE AUTHORIZED: hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_compressed_decoder.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_core.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_if_stage.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_lockstep.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_pkg.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_top.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_top_tracing.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_tracer.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_tracer_pkg.sv

This is an intentional bump to a new version of Ibex (which implies design changes, of course)

1 similar comment
@nasahlpa
Copy link
Member

CHANGE AUTHORIZED: hw/top_earlgrey/data/top_earlgrey.hjson
CHANGE AUTHORIZED: hw/top_earlgrey/ip_autogen/rv_core_ibex/data/rv_core_ibex.hjson
CHANGE AUTHORIZED: hw/top_earlgrey/ip_autogen/rv_core_ibex/rtl/rv_core_ibex.sv
CHANGE AUTHORIZED: hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_compressed_decoder.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_core.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_if_stage.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_lockstep.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_pkg.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_top.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_top_tracing.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_tracer.sv
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_tracer_pkg.sv

This is an intentional bump to a new version of Ibex (which implies design changes, of course)

Copy link
Contributor

@andreaskurth andreaskurth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great work, thanks @SamuelRiedel!

This will enable the Zcb and Zcmp ISA extensions on Ibex for Earlgrey and Darjeeling (in RTL, compiler change to follow).

Approving as the RTL has been reviewed upstream (Ibex repo) and the change is covered by an approved RFC.

@andreaskurth andreaskurth added this pull request to the merge queue Jan 23, 2026
Merged via the queue into lowRISC:master with commit d6c1f63 Jan 23, 2026
79 of 81 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants